package top.xchch.tool.mockito.juejin;

import org.junit.Test;

import java.util.List;

import static org.mockito.Mockito.*;

/**
 * 验证行为
 * 一旦创建，mock会记录所有交互，你可以验证所有你想要验证的东西
 */
public class VerifyTest01 {

    @Test
    public void testVerify() throws Exception {
        //mock creation
        List<String> mockedList = mock(List.class);

        //using mock object
        mockedList.add("one");
        mockedList.add("two");
        mockedList.add("two");
        mockedList.clear();

        //verification
        //验证是否调用过一次 mockedList.add("one")方法，若不是（0次或者大于一次），测试将不通过
        verify(mockedList).add("one");
        //验证调用过2次 mockedList.add("two")方法，若不是，测试将不通过
        verify(mockedList, times(2)).add("two");
        //验证是否调用过一次 mockedList.clear()方法，若没有（0次或者大于一次），测试将不通过
        verify(mockedList).clear();
    }

}
